A data processing environment comprises a variety of hardware, software, and firmware networking components. A physical network, also called an underlay, is a network defined using such components. An example of a networking component in a physical network is a switch. A switch is a device that channels incoming data from any of multiple input ports to the specific output port that will take the data toward its intended destination. When a packet of data arrives at a switch in a conventional network, rules built into the switch's firmware tell the switch where to forward the packet. The switch sends every packet going to the same destination along the same path. Smart switches designed with application specific integrated circuits (ASICs) can recognize different types of packets and treat them differently.
Techniques are available presently to construct a logical network, also known as a software defined network (SDN) overlay (hereinafter interchangeably, “SDN” or “overlay”), from networking components of a physical network. Essentially, networking components are abstracted into corresponding logical or virtual representations, and the abstractions are used to define the SDN. In other words, an SDN is a logical network formed and operated using logical representations of underlying networking components.
Physical networks usually exist within the demarcated boundary of the data processing environment whose networking components are utilized in the physical network. Unlike a physical network, an SDN can be designed to span across one or more data processing environment. For example, while a physical network may be contained within a datacenter, an SDN may span across one or more datacenters.
As an example, a logical representation of a hypervisor can participate in an SDN, such that a function attributed to the logical representation of the hypervisor in the SDN is actually performed by the underlying hypervisor component in the underlay. Similarly, a logical representation of a networking gateway can participate in an SDN, such that a function attributed to the logical representation of the networking gateway in the SDN is actually performed by the underlying networking gateway component in the underlay.
In an SDN, because the actual networking components that perform the networking functions are abstracted into logical entities representing the networking functionality offered by those components and not the actual implementations of those functionalities, something is needed to direct those networking functionalities into a functioning logical network. An SDN controller is a component that manages and operates the logical networking components within an SDN. For example, an SDN controller manages flow entries of physical switches in an underlay network.